Content addressable memory (CAM) devices are frequently used in network switching and routing applications to determine forwarding destinations for data packets, and are also used to provide more advanced network Quality of Service (QoS) functions such as traffic shaping, traffic policing, rate limiting, and so on. More recently, CAM devices have been deployed in network environments to implement intrusion detection systems and to perform deep packet inspection tasks. For example, a new class of CAM device has been developed that can perform complex regular expression search operations.
More specifically, a CAM device includes a CAM array having a plurality of CAM cells organized in a number of rows and columns. Each row of CAM cells, which can be used to store a CAM word, is coupled to a corresponding match line that indicates match results for the row. Each column of CAM cells is typically coupled to one or more data lines or data line pairs that can be used to drive data into a selected CAM row during write operations and/or for providing a search key to the CAM rows during compare operations. During a compare operation, the search key (e.g., the comparand word) is provided to the CAM array and compared with the CAM words stored therein. For each CAM word that matches the search key, a corresponding match line is asserted to indicate the match result, which is typically stored in a match latch associated with the matching CAM row. If one or more of the match lines are asserted, a match flag is asserted to indicate the match condition, and a priority encoder determines the match address or index of the highest priority matching (HPM) entry in the CAM array.
Advances in CAM architectures and semiconductor process technologies have significantly increased storage density and data throughput. However, as storage density and data throughput increase, so do power consumption and heat generation. Indeed, thermal constraints have emerged as a potentially limiting factor in achieving even greater storage densities and data speeds. In networking environments, numerous factors such as packet size and packet content can impact the performance and power consumption of CAM devices deployed therein. For example, the specific contents of a packet can influence both power consumption and data speeds, and therefore the power consumption associated with processing packets of the same size can differ based upon various content-specific processing requirements.
To avoid spikes in power consumption that can damage network components due to overheating, network architects typically design content search systems based upon a predicted worst-case combination of packet size and content processing needs, for example, by limiting maximum data speeds. However, limiting data speeds of network components in a static manner based upon rarely occurring worst-case scenarios undesirably degrades performance.
The power consumption of CAM devices tasked with network routing functions (e.g., address look-ups for performing next-hop functions) is relatively predictable because the search keys and configuration of the CAM device vary little, and therefore designing such systems for the worst-case scenario has been acceptable to prevent device overheating. However, the power consumption of more advanced CAM devices deployed in regular expression search operations is relatively unpredictable because the packet contents and configuration of the CAM device can vary significantly. For example, the advanced CAM device disclosed in U.S. Pat. No. 7,643,353, which is assigned to the assignee of the present disclosure, includes a CAM array having counters and a programmable interconnect structure (PRS) that allow for the storage and searching of complex regular expressions having various metacharacters, quantifiers, and/or character classes. More specifically, the PRS can be configured to selectively route the match signal from each CAM row as an input match signal to itself and/or to any number of other arbitrary selected CAM rows and counter circuits at the same time, and allows the CAM array to store and implement non-deterministic finite automaton (NFA) that embody the complex regular expressions. Thus, the power consumption of such CAM devices depends not only upon the specific configuration of the PRS but also upon the sequence of input characters provided to the CAM array because of the capacitive loading associated with the PRS and the various match lines it may activate during search operations. As a result, conventional approaches to avoid device overheating that use static predictions of a worst-case scenario are insufficient to effectively balance performance and power consumption of such advanced CAM devices.
Accordingly, there is a need to improve the manner in which power consumption of CAM devices is managed.
Like reference numerals refer to corresponding parts throughout the drawing figures.